package com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsSchoolFeesDelay;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.*;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 学费缓交表 服务类
 * </p>
 *
 * @author XYHT
 * @since 2024-01-30
 */
public interface SmsWnsSchoolFeesDelayService extends IService<SmsWnsSchoolFeesDelay> {

    ResponseResult getAssistantAndOrgLeader(String userId);

    ResponseResult addSchoolFeesDelay(SmsWnsSchoolFeesDelayReq schoolFeesDelayReq, String userId);

    ResponseResult cancelSchoolFeesDelay(SmsWnsSchoolFeesDelayCancelReq cancelReq, String userId);

    ResponseResult allowSchoolFeesDelay(SmsWnsSchoolFeesDelayAllowReq allowReq, String userId);

    ResponseResult getSchoolFeesDelayList(String searchStr, Integer applyType,Integer sort, String userId, Integer pageSize, Integer pageNum);

    ResponseResult getSchoolFeesDelayDetail(String applyId, String userId);

    ResponseResult getSchoolFeesDelayOriginSettingProcess(String userId);

    ResponseResult selectAllSchoolFeesDelay(String deliveryDate,String stuName, Integer allowStatus,String collegeId, String majorId,String stuIdCard, Integer pageSize, Integer pageNum);

    ResponseResult selectStuAllSchoolFeesDelay(String deliveryDate, Integer allowStatus, String userId, Integer pageSize, Integer pageNum);

    Future<ResponseResult> tableDownload(String applyId, HttpServletResponse response);

    Future<ResponseResult> exportSchoolFeesDelay(SmsWnsSchoolFeesDelayExportReq schoolFeesDelayExportReq, HttpServletResponse response);

    ResponseResult forcedFinishSchoolFeesDelay(String applyId, String userId);

    ResponseResult forcedTorsionSchoolFeesDelay(SmsWnsSchoolFeesDelayDetailTorsionReq torsionReq);

    ResponseResult replaceApplySchoolFeesDelay(String userId, SmsWnsSchoolFeesDelayAllowReq allowReq);

    ResponseResult forcedRejectSchoolFeesDelay(SmsWnsSchoolFeesDelayForcedReq forcedReq, String userId);

    ResponseResult deletedSchoolFeesDelay(String applyId);


}
